iT邦幫忙

3

[C#]使用日期轉換函式時,為什麼強制顯示出民國年?

c#
  • 分享至 

  • xImage
  •  

今天在使用日期轉換函式時,發現年分會顯示成民國年,而不是預想的西元年:
https://ithelp.ithome.com.tw/upload/images/20220804/20149099hIT3J7cnlB.jpg

原本以為是特定狀況觸發的bug,為此檢查好久的程式,卻沒有發現異常的地方,
查了資料後才發現,作業系統的日期設定格式是會影響到日期呈現的,
這個格式設定的優先度會大於日期轉換函式指定的格式:
https://ithelp.ithome.com.tw/upload/images/20220804/20149099FdTaY2LJGN.jpg

第一種處理的方式就是將日期格式設定還原回預設值,
若系統環境不允許變更日期格式,或是使用預設日期格式仍無效(我遇到這個情況),
可以使用System.Globalization.DateTimeFormatInfo,
就能夠產出不受作業系統設定影響的通用日期格式

DateTime.Now.ToString("yyyy/MM/dd", System.Globalization.DateTimeFormatInfo.InvariantInfo)

使用之後,果然就正常顯示出西元年了~
https://ithelp.ithome.com.tw/upload/images/20220804/20149099UKMCxxqjJv.jpg


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言